package com.pku.control;

import android.os.Bundle;
import android.util.Log;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.StaggeredGridLayoutManager;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.gyf.immersionbar.ImmersionBar;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    private RecyclerView recyclerView;
    private RecyclerViewApater recyclerViewApater;
    private List<DeviceInfo> deviceInfos;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ImmersionBar.with(this).init();
        recyclerView=findViewById(R.id.recyclerView);
        recyclerView.setHasFixedSize(true);
        recyclerView.setItemAnimator(null);
        //垂直方向的2列
        final StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
        //防止Item切换
        layoutManager.setGapStrategy(StaggeredGridLayoutManager.GAP_HANDLING_NONE);
        recyclerView.setLayoutManager(layoutManager);
        final int spanCount = 2;
        recyclerView.addItemDecoration(new StaggeredDividerItemDecoration(this,10,spanCount));
        deviceInfos=new ArrayList<>();

//            DeviceInfo deviceInfo=new DeviceInfo();
//            deviceInfo.setDrawId(R.mipmap.zero);
//            deviceInfo.setMac_code("00000000000");
//            deviceInfo.setMachine_name("vicyory"+0);
//            deviceInfos.add(deviceInfo);
//            deviceInfo=new DeviceInfo();
//            deviceInfo.setDrawId(R.mipmap.one);
//            deviceInfo.setMac_code("11111111111111111");
//            deviceInfo.setMachine_name("vicyory"+1);
//            deviceInfos.add(deviceInfo);
//            deviceInfo=new DeviceInfo();
//            deviceInfo.setDrawId(R.mipmap.two);
//            deviceInfo.setMac_code("2222222222222222");
//            deviceInfo.setMachine_name("vicyory"+2);
//            deviceInfos.add(deviceInfo);
//            deviceInfo=new DeviceInfo();
//            deviceInfo.setDrawId(R.mipmap.three);
//            deviceInfo.setMac_code("3333333333333333");
//            deviceInfo.setMachine_name("vicyory"+3);
//            deviceInfos.add(deviceInfo);
//            deviceInfo=new DeviceInfo();
//            deviceInfo.setDrawId(R.mipmap.four);
//            deviceInfo.setMac_code("4444444444444444");
//            deviceInfo.setMachine_name("vicyory"+4);
//            deviceInfos.add(deviceInfo);
//            deviceInfo=new DeviceInfo();
//            deviceInfo.setDrawId(R.mipmap.five);
//            deviceInfo.setMac_code("5555555555555555555");
//            deviceInfo.setMachine_name("vicyory"+5);
//            deviceInfos.add(deviceInfo);

        recyclerViewApater=new RecyclerViewApater(deviceInfos,MainActivity.this);
        recyclerView.setAdapter(recyclerViewApater);
        getControlInfo();

    }

    private void getControlInfo() {
        String url="http://8.131.87.108:9000/api";
        OkGo.<String>post(url).params("hardwarecode","machine").params("maccode","1").execute(new StringCallback(){
            @Override
            public void onSuccess(Response<String> response) {
                Log.d("victory","列表为:"+response.body());
                String body=response.body();
                if(body!=null){
                    Gson gson=new Gson();
                    Type type = new TypeToken<List<DeviceInfo>>() {
                    }.getType();
                    List<DeviceInfo> infos=gson.fromJson(response.body() , type);
                    if(infos.size()>0&&infos!=null){
                        deviceInfos.clear();
                        deviceInfos.addAll(infos);
                        for(int i=0;i<deviceInfos.size();i++){
                            if(i==0){
                                deviceInfos.get(i).setDrawId(R.mipmap.zero);
                            }else if(i==1){
                                deviceInfos.get(i).setDrawId(R.mipmap.one);
                            }else if(i==2){
                                deviceInfos.get(i).setDrawId(R.mipmap.two);
                            }else if(i==3){
                                deviceInfos.get(i).setDrawId(R.mipmap.three);
                            }else if(i==4){
                                deviceInfos.get(i).setDrawId(R.mipmap.four);
                            }else if(i==5){
                                deviceInfos.get(i).setDrawId(R.mipmap.five);
                            }else{
                                deviceInfos.get(i).setDrawId(R.mipmap.five);
                            }

                        }
                         MainActivity.this.runOnUiThread(new Runnable() {
                             @Override
                             public void run() {
                                 recyclerViewApater.notifyDataSetChanged();
                             }
                         });
                    }
                }

            }

            @Override
            public void onError(Response<String> response) {
                super.onError(response);
            }
        });
    }
}
